Microsoft Corporation has developed a network software platform known as the “.Net” platform (read as “Dot Net”). The platform allows developers to create Web services and applications that will execute over the Internet. The .Net platform is a software platform for Web services and Web applications implemented in a distributed computing environment. It represents the next generation of Internet computing, using open communication standards to communicate among loosely coupled Web services that are collaborating to perform a particular task. Active Server Pages (ASP) has long been the foundation for creating rich and dynamic Web sites using server-side scripting. Through the use of the .NET platform, ASP has evolved into “ASP.NET,” which is a set of technologies in the Microsoft .NET Framework for building Web applications and Web Services.
One of the challenges facing developers using the aforementioned technology as well as related Web site development and server software is the amount of code that needs to be written by developers in order to create objects in applications running on Web servers. Currently, a large amount of code is needed to create objects and “glue” them together, which is time consuming for developers to create and subject to errors.
Another challenge facing developers is figuring out interrelationships between programmable systems. For instance, what happens if an object is removed from an application? Will it cause the Web site to crash? Determining accurate interrelationships between many different systems can be an extremely difficult for custom developers of Web sites.
Memory is another issue facing developers of applications running on the Web. Memory is limited, and therefore, the developer typically writes code to ensure that objects are freed from memory. However, with the open nature of many network software platforms, many times the data structures used for particular objects and the code associated with such structures are incompatible. Thus, there may be a failure to recognize when an object is no longer being used by an application, because the object isn't managed by the particular platform it is running-on. As a result, many objects can continue to use memory resources beyond a period of time when they should have been removed from memory.